From e08b759edce127d996f63ce2efcfbcf9d6830d2c Mon Sep 17 00:00:00 2001 From: "rac61@labyrinth.cl.cam.ac.uk" Date: Mon, 7 Jul 2003 14:24:01 +0000 Subject: [PATCH] bitkeeper revision 1.286 (3f0982812_NP4IcqTvtRwEbA4TDhUQ) Code cleanups Save/load state factored out --- .../org/xenoserver/cmdline/CommandParser.java | 13 ++++++- .../cmdline/ParseDomainDestroy.java | 2 - .../xenoserver/cmdline/ParseDomainList.java | 4 +- .../xenoserver/cmdline/ParseDomainNew.java | 4 +- .../xenoserver/cmdline/ParseDomainStart.java | 4 +- .../xenoserver/cmdline/ParseDomainStop.java | 4 +- .../org/xenoserver/cmdline/ParseGroup.java | 2 - .../src/org/xenoserver/cmdline/ParseHelp.java | 2 - .../cmdline/ParsePhysicalGrant.java | 4 +- .../xenoserver/cmdline/ParsePhysicalList.java | 5 +-- .../cmdline/ParsePhysicalRevoke.java | 4 +- .../xenoserver/control/CommandDomainList.java | 1 - .../control/CommandPhysicalList.java | 1 - .../control/InetAddressPattern.java | 4 +- .../src/org/xenoserver/control/Library.java | 37 +++++++++++++++++++ .../src/org/xenoserver/control/Partition.java | 2 +- .../xenoserver/control/PartitionManager.java | 9 +++-- .../src/org/xenoserver/control/Settings.java | 1 + 18 files changed, 65 insertions(+), 38 deletions(-) diff --git a/tools/control/src/org/xenoserver/cmdline/CommandParser.java b/tools/control/src/org/xenoserver/cmdline/CommandParser.java index e5dc21b658..e04b1cb7d3 100644 --- a/tools/control/src/org/xenoserver/cmdline/CommandParser.java +++ b/tools/control/src/org/xenoserver/cmdline/CommandParser.java @@ -4,9 +4,12 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import org.xenoserver.control.Command; import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.Defaults; +import org.xenoserver.control.PartitionManager; +import org.xenoserver.control.Settings; +import org.xenoserver.control.VirtualDiskManager; +import org.xenoserver.control.XML; /** * Subclasses of Parser know how to parse arguments for a given command @@ -84,4 +87,12 @@ public abstract class CommandParser { } return result; } + + protected void loadState() { + XML.load_state( PartitionManager.it, VirtualDiskManager.it, Settings.STATE_INPUT_FILE ); + } + + protected void saveState() { + XML.dump_state( PartitionManager.it, VirtualDiskManager.it, Settings.STATE_OUTPUT_FILE ); + } } diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java index ffbe324161..799a953772 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java @@ -1,9 +1,7 @@ package org.xenoserver.cmdline; import java.util.LinkedList; -import java.util.List; -import org.xenoserver.control.Command; import org.xenoserver.control.CommandDomainDestroy; import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.Defaults; diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainList.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainList.java index 193d5ac0c8..bf36252e1d 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainList.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainList.java @@ -1,11 +1,9 @@ package org.xenoserver.cmdline; import java.util.LinkedList; -import java.util.List; -import org.xenoserver.control.Command; -import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.CommandDomainList; +import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.Defaults; import org.xenoserver.control.Domain; diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java index bab3778fce..66f7ac763f 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java @@ -1,11 +1,9 @@ package org.xenoserver.cmdline; import java.util.LinkedList; -import java.util.List; -import org.xenoserver.control.Command; -import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.CommandDomainNew; +import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.Defaults; public class ParseDomainNew extends CommandParser { diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java index b615907d1e..826057188f 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java @@ -1,11 +1,9 @@ package org.xenoserver.cmdline; import java.util.LinkedList; -import java.util.List; -import org.xenoserver.control.Command; -import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.CommandDomainStart; +import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.Defaults; public class ParseDomainStart extends CommandParser { diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java index 40bc152f58..c2a9f1093b 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java @@ -1,11 +1,9 @@ package org.xenoserver.cmdline; import java.util.LinkedList; -import java.util.List; -import org.xenoserver.control.Command; -import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.CommandDomainStop; +import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.Defaults; public class ParseDomainStop extends CommandParser { diff --git a/tools/control/src/org/xenoserver/cmdline/ParseGroup.java b/tools/control/src/org/xenoserver/cmdline/ParseGroup.java index 02ef3743d3..cb21eefd8f 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseGroup.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseGroup.java @@ -1,8 +1,6 @@ package org.xenoserver.cmdline; -import java.util.Arrays; import java.util.LinkedList; -import java.util.List; import org.xenoserver.control.CommandFailedException; import org.xenoserver.control.Defaults; diff --git a/tools/control/src/org/xenoserver/cmdline/ParseHelp.java b/tools/control/src/org/xenoserver/cmdline/ParseHelp.java index 4d204c8ba4..a9a7138e85 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseHelp.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseHelp.java @@ -1,9 +1,7 @@ package org.xenoserver.cmdline; import java.util.LinkedList; -import java.util.List; -import org.xenoserver.control.Command; import org.xenoserver.control.Defaults; public class ParseHelp extends CommandParser { diff --git a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java index ba81983273..9979d6e4f0 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java +++ b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java @@ -9,8 +9,6 @@ import org.xenoserver.control.Extent; import org.xenoserver.control.Mode; import org.xenoserver.control.Partition; import org.xenoserver.control.PartitionManager; -import org.xenoserver.control.Settings; -import org.xenoserver.control.XML; public class ParsePhysicalGrant extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { @@ -31,7 +29,7 @@ public class ParsePhysicalGrant extends CommandParser { mode = Mode.READ_ONLY; // Initialise the partition manager and look up the partition - XML.load_state( PartitionManager.it, Settings.STATE_INPUT_FILE ); + loadState(); Partition p = PartitionManager.it.get_partition(partition_name); if ( p == null ) diff --git a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java index c08a881a26..84d849a28c 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java +++ b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java @@ -9,11 +9,8 @@ import org.xenoserver.control.CommandPhysicalList; import org.xenoserver.control.Defaults; import org.xenoserver.control.Extent; import org.xenoserver.control.Library; -import org.xenoserver.control.Mode; import org.xenoserver.control.Partition; import org.xenoserver.control.PartitionManager; -import org.xenoserver.control.Settings; -import org.xenoserver.control.XML; public class ParsePhysicalList extends CommandParser { @@ -23,7 +20,7 @@ public class ParsePhysicalList extends CommandParser { throw new ParseFailedException("Expected -n"); // Initialise the partition manager - XML.load_state( PartitionManager.it, Settings.STATE_INPUT_FILE ); + loadState(); CommandPhysicalList list = new CommandPhysicalList( d, domain_id ); String output = list.execute(); diff --git a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java index 8527845cdb..9db83a5b85 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java +++ b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java @@ -8,8 +8,6 @@ import org.xenoserver.control.Defaults; import org.xenoserver.control.Extent; import org.xenoserver.control.Partition; import org.xenoserver.control.PartitionManager; -import org.xenoserver.control.Settings; -import org.xenoserver.control.XML; public class ParsePhysicalRevoke extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { @@ -22,7 +20,7 @@ public class ParsePhysicalRevoke extends CommandParser { throw new ParseFailedException("Expected -p"); // Initialise the partition manager and look up the partition - XML.load_state( PartitionManager.it, Settings.STATE_INPUT_FILE ); + loadState(); Partition p = PartitionManager.it.get_partition(partition_name); if ( p == null ) diff --git a/tools/control/src/org/xenoserver/control/CommandDomainList.java b/tools/control/src/org/xenoserver/control/CommandDomainList.java index 39ccd383e1..69b2ca04a9 100644 --- a/tools/control/src/org/xenoserver/control/CommandDomainList.java +++ b/tools/control/src/org/xenoserver/control/CommandDomainList.java @@ -27,7 +27,6 @@ public class CommandDomainList extends Command { */ public String execute() throws CommandFailedException { Runtime r = Runtime.getRuntime(); - int rc = 0; Vector v = new Vector(); String outline; BufferedReader in; diff --git a/tools/control/src/org/xenoserver/control/CommandPhysicalList.java b/tools/control/src/org/xenoserver/control/CommandPhysicalList.java index 03bed9e15d..abaf4a7213 100644 --- a/tools/control/src/org/xenoserver/control/CommandPhysicalList.java +++ b/tools/control/src/org/xenoserver/control/CommandPhysicalList.java @@ -31,7 +31,6 @@ public class CommandPhysicalList extends Command { */ public String execute() throws CommandFailedException { Runtime r = Runtime.getRuntime(); - int rc = 0; String outline; BufferedReader in; String output = null; diff --git a/tools/control/src/org/xenoserver/control/InetAddressPattern.java b/tools/control/src/org/xenoserver/control/InetAddressPattern.java index 7b45b093f8..79c2385ef8 100644 --- a/tools/control/src/org/xenoserver/control/InetAddressPattern.java +++ b/tools/control/src/org/xenoserver/control/InetAddressPattern.java @@ -1,6 +1,7 @@ package org.xenoserver.control; -import java.net.*; +import java.net.InetAddress; +import java.net.UnknownHostException; public class InetAddressPattern { @@ -11,7 +12,6 @@ public class InetAddressPattern { InetAddressPattern result = new InetAddressPattern (); char[] ca = t.toCharArray (); - int idx = 0; int len = ca.length; try { diff --git a/tools/control/src/org/xenoserver/control/Library.java b/tools/control/src/org/xenoserver/control/Library.java index b384bed19b..d79e01aef5 100644 --- a/tools/control/src/org/xenoserver/control/Library.java +++ b/tools/control/src/org/xenoserver/control/Library.java @@ -126,4 +126,41 @@ Library return null; } } + + /** + * Formats a number of bytes in whichever way makes most sense based + * on magnitude and width. + * + * @param size Number of bytes. + * @param width Width of field - at least 5, plz. + * @param prefix Set to 1 for left justify + * @return The formatted string. + */ + public static String format_size(long size,int width,int prefix) { + char[] suffixes = { ' ', 'k', 'M', 'G' }; + int suffix = 0; + long before = size; + float after = 0; + + while ( before > 10000 ) { + after = ((float)(before % 1024)) / 1024; + before /= 1024; + suffix++; + } + + StringBuffer num = new StringBuffer(width); + num.append( Long.toString( before ) ); + if ( after != 0 ) { + int space = width - num.length() - 2; + if ( space > 0 ) { + num.append( '.' ); + if ( space > 3 ) + space = 3; + num.append( Integer.toString( (int) (after * Math.pow(10,space)))); + } + } + num.append( suffixes[suffix] ); + + return format(num.toString(),width,prefix); + } } diff --git a/tools/control/src/org/xenoserver/control/Partition.java b/tools/control/src/org/xenoserver/control/Partition.java index 5ca9e02b3e..85ea7e3728 100644 --- a/tools/control/src/org/xenoserver/control/Partition.java +++ b/tools/control/src/org/xenoserver/control/Partition.java @@ -5,7 +5,7 @@ package org.xenoserver.control; -import java.io.*; +import java.io.PrintWriter; public class Partition diff --git a/tools/control/src/org/xenoserver/control/PartitionManager.java b/tools/control/src/org/xenoserver/control/PartitionManager.java index 2609d458ee..2c93636762 100644 --- a/tools/control/src/org/xenoserver/control/PartitionManager.java +++ b/tools/control/src/org/xenoserver/control/PartitionManager.java @@ -5,10 +5,13 @@ package org.xenoserver.control; -import java.io.*; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Enumeration; import java.util.Iterator; import java.util.Vector; -import java.util.Enumeration; /** * PartitionManager manages the partitions on the machine. It is a Singleton @@ -136,8 +139,6 @@ PartitionManager void dump_xml (PrintWriter out) { - int loop; - out.println(""); for (Enumeration e = partition_map.elements() ; e.hasMoreElements() ;) { diff --git a/tools/control/src/org/xenoserver/control/Settings.java b/tools/control/src/org/xenoserver/control/Settings.java index c6a1741dda..a51a7212a6 100644 --- a/tools/control/src/org/xenoserver/control/Settings.java +++ b/tools/control/src/org/xenoserver/control/Settings.java @@ -19,6 +19,7 @@ public final class Settings public static final String PARTITIONS_FILE = System.getProperty("PARTITIONS_FILE", "/proc/partitions"); public static final String STATE_INPUT_FILE = System.getProperty("STATE_INPUT_FILE", "/var/lib/xen/vdstate.xml"); public static final String STATE_OUTPUT_FILE = System.getProperty("STATE_OUTPUT_FILE", "/var/lib/xen/vdstate.xml"); + public static final int SECTOR_SIZE = Integer.parseInt( System.getProperty("SECTOR_SIZE", "512") ); public static File getDefaultsFile() { StringTokenizer tok = new StringTokenizer (DEFAULTS_PATH, ":"); -- 2.30.2